Mainframe computer systems generally use auxiliary storage devices for mass storage of data. In auxiliary storage devices data is recorded by making a physical change to a medium. Examples of physical storage of data on media are: pitting of aluminum by lasers; grooving of a plastic disk by a needle; and forming magnetic domains on a magnetic surface with an electromagnet. A transducer can then be used to sense the physical qualities of the media and to produce an electrical signal which varies in correspondence to the physical qualities of the media. For a data processing system or compact disk player, the electrical signal is decoded to reproduce binary data.
Direct Access Storage Devices (DASD, pronounced "dasdee") are one type of auxiliary storage device. In a direct access storage device access time to data is independent of the location of the data in the storage device. Presently, disk drive units are the most common type of DASD. A disk drive unit records data on rotatable disks. The write and read transducers are moved radially inward and outward relative to the disk and the disk is rotated to bring any location of the disk and the appropriate transducer into proximity with one another. A track is a 360.degree. rotation for a given disk. A cylinder is a vertical band of tracks. There are typically 15 tracks in a cylinder. A DASD may be contrasted to an indirect access storage device, such as tape drives, where accessibility of data is location dependent.
The fact that access time to a location on a disk is more or less random does not mean that it is instantaneous. During a period when a DASD waits for a spinning disk to move to the correct position for a transducer to access a location, a storage controller for the DASD can perform other functions. An example of a function performed during a waiting period is the downloading of data from a buffer memory to a channel to a host computer. In large, multiple computer data processing systems, such as those serving airline reservation systems, a large number of direct access storage devices serve several computers. The storage controller is logically positioned between the DASDs and the host computers. The storage controller handles connection and disconnection between a particular computer and magnetic disk unit for transfer of data.
The IBM 3990 storage controller is an example of a storage controller used to control connections between magnetic disk units and host computers. The IBM 3990 Model 3 type controller, which is available from IBM Corporation, can handle up to sixteen channels from host computers and up to sixty-four magnetic storage units. Within the storage controller are two multipath storage directors and four storage paths, two of which are associated with each multipath storage director. Each multipath storage director may be connected to up to eight incoming channels from host computers, for a total of sixteen channels for the storage controller as a whole. Each multipath storage director is connected to two storage paths, thus functioning as an 8.times.2 switch.
Channels are physical links between the storage controller and the host computers. Usually, a host computer has two or four channels, half being physically connected to the one multipath storage director and the other half being connected to the other multipath storage director. Each storage path is connected to all of the available magnetic disk units. Upon indication that a disk is ready, the controller can secure any one of a plurality of the channels, and storage paths back to a host to establish a data path. It is a feature of the IBM 3990 storage controller that an input/output transaction between a host computer and a magnetic disk unit may be broken into two separate connections, which may be handled along distinct channels and storage paths. A request need not be responded to over the same channel on which it was received. This feature increases throughput through the storage controller, because during the disconnect period the storage controller handles other tasks, such as a connection for another computer with another DASD.
While each path is in effect a stand alone control unit based upon its own microprocessor, the storage paths share control information through a common memory space for synchronization functions relating to handling connections, disconnections and reconnections relating to a transaction. Each storage path in a storage control unit has access to three addressable memory devices used for supporting storage control unit operation. The three memory devices are: a shared control array (SCA); a cache; and non-volatile storage. This patent deals primarily with exploitation of prestaging DASD tracks into the cache to increase the speed of the data retrieval.
Cache is best known for its application as an adjunct to computer memory, where cache is used as a high speed storage for frequently accessed instructions and data. The length of time since last use of a record is used as an indicator of frequency of use. Cache is distinguished from system memory in that its contents are aged from the point of time of last use. In a computer memory address space, program data has to be released before data competing for space in the address space gains access. In cache, competition for space results in data falling out of the cache when they become the least recently used data. While infrequently accessed data periodically enter cache, they will tend to "age" and fall out of cache. The contents of cache are duplicated in system memory.
Storage controller cache performs an analogous function for direct access storage devices and storage controllers. Reading data from (and writing data to) the magnetic media of the direct access storage devices is fairly time consuming. Among the factors slowing the read and write operations are time required for the magnetic disk to come to the appropriate position and the limited bandwidth of the magnetic transducers used to read and write the data. By duplicating frequently accessed data in cache, read time for data is reduced and data storage system throughput is considerably enhanced. High speed components are expensive in terms of cost per byte of storage, particularly when compared with magnetic media storage and thus cache is quite small compared to the memory device for which it acts as a buffer.
In the IBM 3990 Model storage controller, storage controller cache has been used to provide a buffering function for some data being written to a DASD device. In the IBM 3990 Model storage controller, data is conventionally stored in the storage controller cache as track images.
Non-volatile storage (NVS) was added to the storage controller as a backup to cache for its buffering function. Non-volatile storage can be provided by special memory circuits or by memory that has a back up power source. Access to NVS is faster than access to a direct access storage device, but generally slower than cache. Data are branched to cache, for speed in transfer to the DASD, and to NVS to back up the cache in case of power failure. Data written to NVS are considered as safe as if written to magnetic media, and indication may be given to the host computer that the data are successfully stored.
To increase the speed of data retrieval from DASD the storage control unit may prestage tracks into the cache for sequentially organized data sets or files. The prestaging of tracks into cache is triggered by channel programs whose define extent channel command word indicates sequential processing will take place. In the context of the present application, what is meant by prestaging is reading one or more tracks into cache before processing channel programs arrive for those tracks.
In prior art systems, a fixed number of tracks were prestaged, typically two. One of the problems with prestaging a small number of fixed prestages is that the channel programs could easily exhaust this small buffer of prestaged tracks. Typically, the prestage is scheduled at the end of a channel program. Accordingly, if processing track 0, tracks 1 and 2 are scheduled for prestaging. If processing track 1, tracks 2 and 3 are scheduled prestaging. In this arrangement, often times one of the tracks being prestaged is already in the cache. Accordingly, there is significant overhead associated with prestaging only one track.
In addition, in this type of fixed track prestaging is used in which a single track is rolled into the cache. There is usually a long latency when the second track is accessed. Therefore, in the fixed prestaging algorithm there are inefficiencies. One inefficiency is due to latency associated with the single track roll mode. The second inefficiency is due to overhead to issue the internal prestaging and access to the cache if more than three tracks were accessed by the channel program. Accordingly, the small number of tracks prestaged can be easily exhausted by the channel programs and there is significant overhead associated with the single track roll mode.
The present invention overcomes the above-mentioned problems.